package com.heima.wemedia.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.heima.model.common.dtos.ResponseResult;
import com.heima.model.wemedia.dtos.NewsAuthDto;
import com.heima.model.wemedia.dtos.WmNewsDto;
import com.heima.model.wemedia.dtos.WmNewsPageReqDto;
import com.heima.model.wemedia.pojos.WmNews;
import com.heima.model.wemedia.vo.WmNewsVo;

/**
 * @author huan
 * @serial 每天一百行, 致敬未来的自己
 * @Description
 */

public interface WmNewsService extends IService<WmNews> {
    /**
     * 自媒体文章列表查询
     *
     * @param dto
     * @return
     */
    ResponseResult findAll(WmNewsPageReqDto dto);

    /**
     * 自媒体文章发布
     *
     * @param dto
     * @return
     */
    ResponseResult submitNews(WmNewsDto dto);

    /**
     * 根据文章id查询文章
     *
     * @param id
     * @return
     */
    ResponseResult<WmNews> findWmNewsById(Integer id);

    /**
     * 根据文章id删除文章
     *
     * @param id
     * @return
     */
    ResponseResult delNewById(Integer id);

    /**
     * 文章上下架
     *
     * @param dto
     * @return
     */
    ResponseResult downOrUp(WmNewsDto dto);

    /**
     * 查询文章列表
     *
     * @param dto
     * @return 1、按照创建时间降序
     * 2、后端查询的文章不应该包含草稿
     */
    ResponseResult findList(NewsAuthDto dto);

    /**
     * 查询文章详情
     *
     * @param id 文章id
     * @return
     */
    ResponseResult<WmNewsVo> findOne(Integer id);

    /**
     * 自媒体文章人工审核
     *
     * @param status 2  审核失败  4 审核成功
     * @param dto
     * @return
     */
    ResponseResult updateStatus(NewsAuthDto dto, Short status);

    /**
     * 修改媒体文章
     *
     * @param wmNews
     * @return
     */
    ResponseResult<WmNews> updateWmNews(WmNews wmNews);


}
